// 工具函数模块
const fs = require('fs')
const path = require('path')

// 日志目录
const logDir = path.join(__dirname, '../logs')
if (!fs.existsSync(logDir)) {
  fs.mkdirSync(logDir)
}

// 日志记录函数，会写入文件和控制台
function logMessage(message, data = null) {
  // const timestamp = new Date().toISOString();
  // const logEntry = { timestamp, message, data };
  // console.log(`[${timestamp}] ${message}`, data ? JSON.stringify(data) : '');
  // const logFile = path.join(logDir, `${new Date().toISOString().split('T')[0]}.log`);
  // fs.appendFileSync(logFile, JSON.stringify(logEntry) + '\n');
}

// 统一JSON响应函数，带CORS头
function sendJson(res, data, status = 200) {
  // 过滤二维码状态查询接口的响应日志
  if (!(res.req && /^\/api\/qrcode\/[\w-]+\/status$/.test(res.req.url))) {
    console.log('Response:', data);
  }
  res.writeHead(status, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': 'Content-Type' })
  res.end(JSON.stringify(data))
}

// 解析POST请求体（JSON）
function parseBody(req) {
  return new Promise((resolve, reject) => {
    let body = ''
    req.on('data', chunk => { body += chunk })
    req.on('end', () => {
      try {
        resolve(body ? JSON.parse(body) : {})
      } catch (e) {
        reject(e)
      }
    })
  })
}

module.exports = {
  logMessage,
  sendJson,
  parseBody
} 